"""
AIDA框架第三阶段专家代理模块
"""

from .base_agent import BaseAgent, AgentResult, ReviewItem
from .logic_agent import LogicCoherenceAgent
from .compliance_agent import ComplianceAgent
from .cad_agent import CADReviewAgent
from .table_agent import TableDataAgent
from .format_agent import FormatAgent

__all__ = [
    'BaseAgent',
    'AgentResult', 
    'ReviewItem',
    'LogicCoherenceAgent',
    'ComplianceAgent',
    'CADReviewAgent',
    'TableDataAgent',
    'FormatAgent'
]

# 代理类型映射
AGENT_TYPES = {
    'logic_coherence': LogicCoherenceAgent,
    'compliance': ComplianceAgent,
    'cad_review': CADReviewAgent,
    'table_data': TableDataAgent,
    'format_check': FormatAgent
}

# 代理描述
AGENT_DESCRIPTIONS = {
    'logic_coherence': '逻辑连贯性审查代理 - 检查内容的逻辑一致性和论证合理性',
    'compliance': '合规性审查代理 - 检查是否符合相关规则、规范和法律要求',
    'cad_review': 'CAD图纸审查代理 - 审查技术图纸的完整性、规范性和质量',
    'table_data': '表格数据审查代理 - 检查表格数据的准确性、完整性和合理性',
    'format_check': '格式规范审查代理 - 检查文档的体例和格式规范性'
}

def get_agent_class(agent_type: str):
    """根据代理类型获取代理类"""
    return AGENT_TYPES.get(agent_type)

def get_available_agents():
    """获取所有可用的代理类型"""
    return list(AGENT_TYPES.keys())

def get_agent_description(agent_type: str):
    """获取代理描述"""
    return AGENT_DESCRIPTIONS.get(agent_type, '未知代理类型')